#-*- coding: UTF-8 -*-

# 需求：输出某个英文文本文件中 26 字母出现的频率，由高到低排列，并显示字母出现的百分比，精确到小数点后面两位。
# 时间复杂度：O(n)
# 空间复杂度：O(n)

# 生成a-z的序列
seq = [chr(letter).lower() for letter in range(65, 91)]
# 由序列生成字典，赋初值0
dic = dict.fromkeys(seq, 0)
# 获取文本内容
text_content = "jsoivcnoiamcgomaowglocojviojemgvsmcgmaijgvomacjiomICSOICOQjcoiueocoJIOvoljOIjvv"
# 统计字母频数
for ch in text_content:
    dic[ch.lower()] += 1
dic_sorted = sorted(dic.items(), key = lambda x:x[1], reverse=True)
# 输出频率
for el in dic_sorted[:10]:
    res = el[1] * 1.0/len(text_content)
    print("{}:{}".format(el[0], round(res, 2)))